]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Move StEntry away from clutter_event_get_source()
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 25 Feb 2022 15:11:54 +0000 (16:11 +0100)
committerMarge Bot <marge-bot@gnome.org>
Fri, 4 Mar 2022 12:27:34 +0000 (12:27 +0000)
Ask the stage about the device actor instead. Since leaving the
StEntry also means leaving the contained ClutterText, the checks
on LEAVE can be just removed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2216>

src/st/st-entry.c

index 2211185b4f92ab67711801efe22b754f8bb5ec5d..625bbf2523e6c93a71df8f66599510f5860c4b56 100644 (file)
@@ -789,7 +789,13 @@ st_entry_enter_event (ClutterActor         *actor,
                       ClutterCrossingEvent *event)
 {
   StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
-  if (event->source == priv->entry && event->related != NULL)
+  ClutterStage *stage;
+  ClutterActor *target;
+
+  stage = clutter_event_get_stage ((ClutterEvent *) event);
+  target = clutter_stage_get_event_actor (stage, (ClutterEvent *) event);
+
+  if (target == priv->entry && event->related != NULL)
     st_entry_set_cursor (ST_ENTRY (actor), TRUE);
 
   return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->enter_event (actor, event);
@@ -799,9 +805,7 @@ static gboolean
 st_entry_leave_event (ClutterActor         *actor,
                       ClutterCrossingEvent *event)
 {
-  StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
-  if (event->source == priv->entry && event->related != NULL)
-    st_entry_set_cursor (ST_ENTRY (actor), FALSE);
+  st_entry_set_cursor (ST_ENTRY (actor), FALSE);
 
   return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->leave_event (actor, event);
 }